home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / test / test_winreg.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  5KB  |  162 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. from _winreg import *
  5. import os
  6. import sys
  7. from test.test_support import verify, have_unicode
  8. test_key_name = 'SOFTWARE\\Python Registry Test Key - Delete Me'
  9. test_data = [
  10.     ('Int Value', 45, REG_DWORD),
  11.     ('String Val', 'A string value', REG_SZ),
  12.     ('StringExpand', 'The path is %path%', REG_EXPAND_SZ),
  13.     ('Multi-string', [
  14.         'Lots',
  15.         'of',
  16.         'string',
  17.         'values'], REG_MULTI_SZ),
  18.     ('Raw Data', 'binary' + chr(0) + 'data', REG_BINARY),
  19.     ('Big String', 'x' * (2 ** 14 - 1), REG_SZ),
  20.     ('Big Binary', 'x' * 2 ** 14, REG_BINARY)]
  21. if have_unicode:
  22.     test_data += [
  23.         (unicode('Unicode Val'), unicode('A Unicode value'), REG_SZ),
  24.         ('UnicodeExpand', unicode('The path is %path%'), REG_EXPAND_SZ),
  25.         ('Multi-unicode', [
  26.             unicode('Lots'),
  27.             unicode('of'),
  28.             unicode('unicode'),
  29.             unicode('values')], REG_MULTI_SZ),
  30.         ('Multi-mixed', [
  31.             unicode('Unicode'),
  32.             unicode('and'),
  33.             'string',
  34.             'values'], REG_MULTI_SZ)]
  35.  
  36.  
  37. def WriteTestData(root_key):
  38.     SetValue(root_key, test_key_name, REG_SZ, 'Default value')
  39.     key = CreateKey(root_key, test_key_name)
  40.     sub_key = CreateKey(key, 'sub_key')
  41.     for value_name, value_data, value_type in test_data:
  42.         SetValueEx(sub_key, value_name, 0, value_type, value_data)
  43.     
  44.     (nkeys, nvalues, since_mod) = QueryInfoKey(key)
  45.     verify(nkeys == 1, 'Not the correct number of sub keys')
  46.     verify(nvalues == 1, 'Not the correct number of values')
  47.     (nkeys, nvalues, since_mod) = QueryInfoKey(sub_key)
  48.     verify(nkeys == 0, 'Not the correct number of sub keys')
  49.     verify(nvalues == len(test_data), 'Not the correct number of values')
  50.     int_sub_key = int(sub_key)
  51.     CloseKey(sub_key)
  52.     
  53.     try:
  54.         QueryInfoKey(int_sub_key)
  55.         raise RuntimeError, 'It appears the CloseKey() function does not close the actual key!'
  56.     except EnvironmentError:
  57.         pass
  58.  
  59.     int_key = int(key)
  60.     key.Close()
  61.     
  62.     try:
  63.         QueryInfoKey(int_key)
  64.         raise RuntimeError, 'It appears the key.Close() function does not close the actual key!'
  65.     except EnvironmentError:
  66.         pass
  67.  
  68.  
  69.  
  70. def ReadTestData(root_key):
  71.     val = QueryValue(root_key, test_key_name)
  72.     verify(val == 'Default value', "Registry didn't give back the correct value")
  73.     key = OpenKey(root_key, test_key_name)
  74.     sub_key = OpenKey(key, 'sub_key')
  75.     index = 0
  76.     while None:
  77.         
  78.         try:
  79.             data = EnumValue(sub_key, index)
  80.         except EnvironmentError:
  81.             break
  82.  
  83.         index = index + 1
  84.     verify(index == len(test_data), "Didn't read the correct number of items")
  85.     for value_name, value_data, value_type in test_data:
  86.         (read_val, read_typ) = QueryValueEx(sub_key, value_name)
  87.         if read_val == value_data:
  88.             pass
  89.         verify(read_typ == value_type, 'Could not directly read the value')
  90.     
  91.     sub_key.Close()
  92.     read_val = EnumKey(key, 0)
  93.     verify(read_val == 'sub_key', 'Read subkey value wrong')
  94.     
  95.     try:
  96.         EnumKey(key, 1)
  97.         verify(0, 'Was able to get a second key when I only have one!')
  98.     except EnvironmentError:
  99.         pass
  100.  
  101.     key.Close()
  102.  
  103.  
  104. def DeleteTestData(root_key):
  105.     key = OpenKey(root_key, test_key_name, 0, KEY_ALL_ACCESS)
  106.     sub_key = OpenKey(key, 'sub_key', 0, KEY_ALL_ACCESS)
  107.     for value_name, value_data, value_type in test_data:
  108.         DeleteValue(sub_key, value_name)
  109.     
  110.     (nkeys, nvalues, since_mod) = QueryInfoKey(sub_key)
  111.     if nkeys == 0:
  112.         pass
  113.     verify(nvalues == 0, 'subkey not empty before delete')
  114.     sub_key.Close()
  115.     DeleteKey(key, 'sub_key')
  116.     
  117.     try:
  118.         DeleteKey(key, 'sub_key')
  119.         verify(0, 'Deleting the key twice succeeded')
  120.     except EnvironmentError:
  121.         pass
  122.  
  123.     key.Close()
  124.     DeleteKey(root_key, test_key_name)
  125.     
  126.     try:
  127.         key = OpenKey(root_key, test_key_name)
  128.         verify(0, 'Could open the non-existent key')
  129.     except WindowsError:
  130.         pass
  131.  
  132.  
  133.  
  134. def TestAll(root_key):
  135.     WriteTestData(root_key)
  136.     ReadTestData(root_key)
  137.     DeleteTestData(root_key)
  138.  
  139. TestAll(HKEY_CURRENT_USER)
  140. print 'Local registry tests worked'
  141.  
  142. try:
  143.     remote_name = sys.argv[sys.argv.index('--remote') + 1]
  144. except (IndexError, ValueError):
  145.     remote_name = None
  146.  
  147. if remote_name is not None:
  148.     
  149.     try:
  150.         remote_key = ConnectRegistry(remote_name, HKEY_CURRENT_USER)
  151.     except EnvironmentError:
  152.         exc = None
  153.         print 'Could not connect to the remote machine -', exc.strerror
  154.         remote_key = None
  155.  
  156.     if remote_key is not None:
  157.         TestAll(remote_key)
  158.         print 'Remote registry tests worked'
  159.     
  160. else:
  161.     print 'Remote registry calls can be tested using', "'test_winreg.py --remote \\\\machine_name'"
  162.